home *** CD-ROM | disk | FTP | other *** search
/ SPACE 1 / SPACE - Library 1 - Volume 1.iso / telecomm / 378 / zmodm168 / zmdm.doc < prev    next >
Text File  |  1989-12-24  |  31KB  |  792 lines

  1.     zmdm.doc, v1.6 ++jrb
  2.  
  3.                 ACKNOWLEDGEMENTS
  4.  
  5.     ZMDM was derived from rz/sz for Unix  posted by 
  6.     Chuck Forsberg (...!tektronix!reed!omen!caf ). We
  7.     thank him for his excellent code, and for giving
  8.     us permission to use and distribute his code and
  9.     documentation.
  10.  
  11.     The code for detecting baud rate at startup is courtesy
  12.     of Brian Katzung (katzung@laidbak.UUCP). Thanks very
  13.     much!
  14.  
  15.     Andy Nicola did a lot of testing of the new features.
  16.     Thank You very much!
  17.  
  18.     Thanks to the many users on the net who wrote in.
  19.  
  20.     It is possible to run @38.4K or higher baud rates, the changes
  21.     for this are simple. however, not all ST's run reliably at those
  22.     rates, so i left those options out.
  23.  
  24.     The phones module is totally compatible with our earlier program
  25.     xmdm, so phone directories created with xmdm can be used with zmdm.
  26.  
  27. ----------------------------------------------------------------------------
  28.     Enhancements since V1.67
  29.         o CPS reporting has changed. cps now is the effective
  30.         cps, on receive it includes the time to write the file.
  31.         on send it is the file send time (including read time).
  32.         note: on send the effective cps can be higher than the
  33.         baud rate can possible send. this discrepancy is because
  34.         of buffering.
  35.         o increased send buffer size
  36.         o minor bug fixes
  37.  
  38.     Enhancements since V1.64
  39.         o Updated protocol
  40.         o fixed some long/short int problems (due to strlen being
  41.           size_t for gcc lib)
  42.         o cursor is not turned on automatically. if you are running
  43.           this from the desktop and want the cursor turned on,
  44.           name the executable files with .tos or .ttp extensions.
  45.             o hi-rez toggle is preserved (ie: if you changed it
  46.               within zmdm, it is restored on exit).
  47.           Note: autowrap, and screen color inversion are not
  48.           preserved on purpose. if you want to change that
  49.           just look in main.c.
  50.  
  51.         o Bug: still does not understand the concept of
  52.           daylight saving time, so the St files will be
  53.           an hour behind when downloaded.
  54.           (also note: there are some versions of this program
  55.            munged by someone else, floating around on various BBS
  56.            that totaly screw up date/time/protection. Settle only
  57.            for the origonal!)
  58.         o Newer versions of TurboSt seem to live well with
  59.           the 50 line mode. QuickSt also seems to be fine.
  60.  
  61.     Enhancements since V1.64:
  62.         o accept an optional command line arguement for
  63.           default phone directory file name. If not found
  64.           or is not specified, then it looks for the 
  65.           environment variable "PHONE". If found it will
  66.           use it, otherwise the first time it tries to
  67.           use a phone directory, it'll prompt for a filename.
  68.         o Stderr now should go to screen. This fix is in the
  69.           gnu library and not in zmdm per se. (this also
  70.           will enable people to run the standalone programs
  71.           from flash etc). This program is supposedly incompatible
  72.           with Shadow. I dont have shadow, so i dont know what the
  73.           incompatibilities are, however this program uses standard
  74.           Tos calls for everything, and works under all versions
  75.           of Tos, so i suspect the problem is with Shadow.
  76.         o check in under RCS (internal change).
  77.  
  78.     Enhancements since V1.62:  (last Usenet release).
  79.  
  80.         o Now looks for environment variable "PHONE"
  81.           for default phone directory file name. If
  82.           found it will be opened.
  83.  
  84.         o Gnu C compiler added. Requires V1.35 or better.
  85.  
  86.     Enhancements since V1.2:
  87.     
  88.         o Some cleanup, moved common things around.
  89.           Some cosmetic additions.
  90.  
  91.         o MWC 3.0 compatible. The sample MW makefiles
  92.           reflect the setup required for MWC  V 3.0.6.
  93.  
  94.         o Manx Aztec C compatible. Tested with V 3.6a
  95.           of the compiler. Produces the smallest code
  96.           of all the compilers tested. See config.h,
  97.           makefile.man and makefman.sta.
  98.           CAUTION: for MegaST and 4Meg ST owners--
  99.             The Manx Version will not work correctly
  100.           for you due to a bug in the start up file
  101.           -- we are still trying to figure out exactly
  102.           what the problem is!
  103.  
  104.         o Auto Baud Rate detection on startup:
  105.           Previously ZMDM would set the baud rate
  106.           to a compile time configurable rate on
  107.           startup (it needed to know the baud rate
  108.           to determine its default packet size). Thanks
  109.           to code contributed by Brian Katzung, now it
  110.           detects the baud rate on startup.
  111.           Of course you can set the baud rate
  112.           within ZMDM (by hitting '<HELP>'  'b' ).
  113.  
  114.         o Compile time option to use all available memory
  115.           as recv/send buffer. See DYNABUF, LEAVEALONE and
  116.           MINACC preprocessor symbols in config.h. If you
  117.           prefer to use a fixed size buffer, this is still
  118.           possible by not #define'ing DYNABUF and setting
  119.           BBUFSIZ. MegaST OK - thanks Andy Nicola.
  120.  
  121.         o Stand Alone versions of RZ and SZ can be made
  122.           by compiling the sources with the preprocessor
  123.           symbols 'STANDALONE' #define'ed. See the makefile
  124.           'MAKEFILE.STA' for more details.
  125.           Stand Alone versions DO NOT do any command line
  126.           argument expansions for wild cards or directories
  127.           (unlike the integrated ZMDM).
  128.           Stand Alone versions tested from within Gulam,
  129.           Flash and Intersect. Thanks to Andy Nicola for
  130.           testing these features.
  131.  
  132.         o Remote versions of ZMDM, RZ and SZ can be made by
  133.           compiling the sources with the preprocessor symbol
  134.           'REMOTE' #define'ed. A remote version listens and
  135.           does all its I/O thru the serial port. Of course
  136.           it has to be fired up from console. One of our
  137.           area BBS's provides this as a D/L option, where
  138.           the BBS program execs a remote ZMDM, and one you exit
  139.           you return back to the BBS program.
  140.  
  141.             o Added -B (note: uppercase B) option to both RZ and SZ.
  142.           the -B function is a binary mode override, that disregards
  143.           the extension when deciding the transfer mode. This is
  144.           useful when say you are backing up your whole disk
  145.           to say a Unix host. (backup the exact image of the files),
  146.           or doing St-to-St type transfers.
  147.         
  148.         o Now compatible with the PD DLIB library. The
  149.           pre-processor symbol DLIBS must be defined. Only
  150.           tested with the Alcyon version of the library.
  151.  
  152.         o Added the phone module (a simple dialer with a
  153.           telephone numbers directory). This module is
  154.           only compiled in if the preprocessor symbol
  155.           'PHONES' is #define'ed. For those of you who
  156.           are familiar with XMDM, this module was directly
  157.           ripped out of there, with a small bug fix that
  158.           prevented it from running under TurboSt.ACC.
  159.  
  160.         o Long packet lengths now allowed at slower baud rates
  161.           rather than insisting on using the default as the max
  162.           packet length. For instance
  163.             sz -l 1024 files..
  164.           will now send 1024 byte packets at low baud rates (<= 2400).
  165.           The corresponding change has been made to the unix
  166.           end of the software too.
  167.  
  168.         o TurboSt.ACC note:
  169.             The high rez toggle (25/50 lines) on a
  170.         monochrome monitor will NOT work is TurboSt.ACC is
  171.         installed. The problem is on the TurboSt.ACC end. Using
  172.         the high rez toggle does'nt cause any ill-effect, it just
  173.         does not do anything.
  174.           
  175.     Enhancements since V1.0:
  176.         o (This enhancement is only present when
  177.            you compile with the pre-processor symbol
  178.            `RECURSE' defined - see the makefile's)
  179.           sz now takes a  directory as an argument.
  180.           If the name of a directory is given as an
  181.           argument, then the contents of that directory
  182.           and all its subdirectories are sent. A new
  183.           option to sz is '-P <dir or file>'
  184.           (capital 'P' not 'p'), that
  185.           'prunes' the expansion of a directory. For
  186.           example if you wanted to send all the files
  187.           in the 'C' partition of your hard disk, except
  188.           the 'tmp', 'usr' and 'foo\bar' subdirectories, you would
  189.           issue the following command in the transfer
  190.           shell:
  191.  
  192.              sz -f -P c:\tmp -P c:\usr -P c:\foo\bar c:\
  193.  
  194.           Notice that you may specify multiple -P 'rune
  195.           options. The argument to the -P option may also be
  196.           the name of a file that you want to prune off.
  197.           Also note that to send full path names
  198.           to the remote end, the '-f' option is required,
  199.           otherwise the remote end will create all the
  200.           files in its current working directory. (Also
  201.           see CWRU extension to Unix 'rz', where 'rz' when
  202.           receiving full path names (ie. when you specify the
  203.           '-f' option to sz on the ST end) will create all
  204.           subdirectories required to receive the file). The
  205.           ST 'rz' always creates all subdirectories required
  206.           to receive a path when the other end is sz'ing with
  207.           the '-f' option. Also note that in both the rz's
  208.           all subdirectories are created relative to the 
  209.           current working directory, even though the path may
  210.           specify an absolute path.
  211.  
  212.             o File name mapping is slightly changed from V1.0.
  213.           When receiving a filename that has multiple '.'s
  214.           all but the last '.' is replace with an '_'. So
  215.           'foo.bar.ext' becomes 'foo_bar.ext'. Similarly
  216.           '123.456.789\aaa.bbb.ccc' becomes '123_456.789\aaa_bbb.ccc'.
  217.           As in V1.0, the filename and extension (of each
  218.           component of a path name) are truncated to 8 and 3
  219.           characters respectively. So '123.456789.ext\foobarbaz'
  220.           becomes '123_4567.ext\foobarba'. Also note that
  221.           while sending, '\'s are sent as '/'s. The ST drive
  222.           specifier part of a path name is never sent.
  223.           So 'c:\file.ext' is sent as '/file.ext' (remember:
  224.           that full pathnames are only sent when the '-f'
  225.           option is specified to 'sz').
  226.  
  227.         o Many bug fixes since V1.0!
  228.  
  229. ----------------------------------------------------------------------------
  230.  
  231.  
  232.     Zmdm consists of two main components:
  233.         o The terminal emulator
  234.         o The transfer shell
  235.  
  236.     - The terminal emulator emulates a 80*25 terminal
  237.     (or optionally the 80*50 mode on Mono systems only).
  238.     It uses the escape codes of the bios built in enhanced
  239.     vt52 emulator. For UN*X users i have included the
  240.     termcap entry that we use.
  241.  
  242.     - The transfer shell lets you send/receive files using
  243.     Xmodem/Xmodem-CRC/Xmodem-1K/Ymodem or Zmodem protocols.
  244.         In addition it provides UN*X csh like command for your
  245.     convenience, and does (TOS style) wild-card handling,
  246.         and (only single) quoting of arguments. Please note that
  247.     this is a convenience feature, and in no way does it
  248.     pretend to be compatible with csh or any other shell.
  249.     See the accompanying file YMODEM.DOC by Chuck Forsberg,
  250.     for details of the above transfer protocols.
  251.  
  252.     This note describes the commands available from the
  253.     "transfer shell". The transfer shell is the built in command line
  254.     interface. In case you are wondering why we choose to
  255.     use a command line interface, the answer is quite simple.
  256.     The functions available have so many options and combinations
  257.     thereof, that it would be totally impractical if not impossible
  258.     to put them in menus/dialogues (each menu will have to be at least
  259.     3 levels deep). Of course it is much easier to type something
  260.     like 'sz -l 128 -L 128 *.c' than answering the at least three
  261.     dialogues required to pick up the same info. You enter the
  262.     transfer shell from the terminal emulator by hitting <HELP>
  263.     and choosing 'T' from the main menu. Once you are done using the
  264.     transfer shell, you simply hit <RETURN> to pop back into the terminal
  265.     emulator, exactly where you left off.
  266.  
  267.     This program was written primarily for situations where you
  268.     are connected to remote hosts either directly or via modems.
  269.     The timing and error parameters are NOT suitable for hosts
  270.     such as CompuServe etc, where there may large delays or your
  271.     phone line is noisy. We distributed a program called XMDM earlier
  272.     that is very tolerant of delays/noisy lines and has been used
  273.     very successfully for BBS'ing around the country. XMDM has
  274.     conveniences such as dialing directories etc for that purpose.
  275.     If you have a old version of XMDM ( < V1.8) that does not have
  276.     dialing directories etc, please mail me for a new copy.
  277.  
  278.     ZMDM has been tested in the following ways:
  279.     1) Between two ST's running ZMDM. 19200 Baud no problem!
  280.     2) With unix sz/rz running on a BSD4.3 on Vaxen.
  281.     3) With unix sz/rz running on Apollo Dn330/Dn300 under Aegis and
  282.        Domain IX (over a siologin line).
  283.     4) With unix sz/rz running on a Sun under SunOS.
  284.     6) With an Ibm At running Procomm using Ymodem/Xmodem.
  285.     7) With ForemSt bbs, with the BBS sending in Ymodem batch
  286.        mode. (note: ForemSt bbs's do not take batch uploads -
  287.        Matt Singer are you listening??)
  288.  
  289.     8) With a Mac running MicroPhone using Ymodem mode.
  290.     9) With an Intel 210 box running Xenix (yech!).
  291.         
  292.     UNIX users please note:
  293.         If the load on your system is high, the UNIX tty
  294.     driver drops characters when receiving at 9600 or higher baud rates.
  295.     There are two ways around this problem:
  296.     - use shorter packet and frame lengths using the `-l' and `-L' options
  297.     of SZ. For examples `sz -l 128 -L 128 files...' work most of
  298.     the time at 9600/19200 baud without any problem.
  299.  
  300.     - reduce your baud rate to 4800 baud. Normally the first solution
  301.     works fine, but if you have an extraordinarily loaded machine
  302.     (or are running on a brain damaged 750 with DZ11's), then 4800 baud
  303.     works better.
  304.     
  305.     - Those who have 3b2 boat anchors, the tty driver (at least on
  306.      the boxes we have) is totally useless over 1200 baud.
  307.  
  308.     -----
  309.     
  310.  
  311. NAME
  312.      rb, rz - XMODEM, YMODEM, ZMODEM (Batch) file receive
  313.  
  314. SYNOPSIS
  315.      rz    [-Bepqtvw]
  316.      rb    [-pqtv]
  317.      rz    [-cqtv] file
  318.  
  319.  
  320. DESCRIPTION
  321.      This program uses error correcting    protocol to receive files
  322.      over a serial port    from a variety of programs running under
  323.      TOS, PC-DOS, CP/M, Unix, and other operating systems.
  324.  
  325.      The first form of rz (Receive ZMODEM) receives files with
  326.      the ZMODEM    batch protocol.     If the    sending    program    does not
  327.      support ZMODEM, rz    steps down to YMODEM protocol after 50
  328.      seconds.  This delay can be eliminated by calling the pro-
  329.      gram as rb    .
  330.  
  331.      When receiving with XMODEM    or YMODEM, Rz accepts either
  332.      standard 128 byte sectors or 1024 byte sectors (YAM -k
  333.      option).  The user    should determine when the longer block
  334.      length actually improves throughput without causing prob-
  335.      lems.
  336.  
  337.      If    extended file information (file    length,    etc.) is
  338.      received, the file    length controls    the number of bytes writ-
  339.      ten to the    output dataset (YMODEM only), and the modify time
  340.      and file mode (iff    non zero) are set accordingly. A special feature
  341.      of the ST implementation is that if the remote end sends
  342.      full path names (-f option of sz) all required directories
  343.      will be automatically created on the ST end. The directories
  344.      will be rooted at the current directory and not at the root level.
  345.  
  346.      The second    form of    rz receives a single file with XMODEM
  347.      protocol.    The user must supply the file name to both send-
  348.      ing and receiving programs.
  349.  
  350.      When rz is invoked, Verbose is set to 2, causing frame by
  351.      frame progress reports to stderr.  This may be disabled with
  352.      the q option.
  353.  
  354.  
  355.      The meanings of the available options are:
  356.      
  357.      B      (ZMODEM) force all files to be received in binary mode.
  358.       Useful for ST-to-ST transfers (for Ascii files where
  359.       you don't want LF to CRLF conversion). This is
  360.       a local override, specifying `-B' overrides any mode
  361.       the sender specifies (it however will still honor any `protect'
  362.       or `append' requests from the sender)
  363.       (Applicable to ZMODEM transfers only).
  364.  
  365.      c      Request 16 bit CRC.  XMODEM file transfers default to    8
  366.       bit checksum.     YMODEM    and ZMODEM normally use    16 bit
  367.       CRC.
  368.  
  369.      p      (ZMODEM) Protect: skip file if destination file exists.
  370.  
  371.      q      Quiet    suppresses verbosity.
  372.  
  373.      t tim
  374.       Change timeout to tim    tenths of seconds.
  375.  
  376.      v      Verbose, more v's give more verbose. Info is also
  377.       appended to logfile 'rzlog' .    More v's generate more output.
  378.  
  379.      e    Escape control characters (Z)
  380.  
  381.      w    N Window is N bytes (Z) -- control receive window size
  382.  
  383. ZMODEM CAPABILITIES
  384.      Rz    supports incoming ZMODEM binary    (-b), ASCII (-a), protect
  385.      (-p), and append (-+) requests, and ZMODEM    command    execu-
  386.      tion. The incoming mode may be optionally overriden by specifying
  387.      the `-B' option to Rz, in which case all files will be received
  388.      in binary mode regardless of the incoming mode (protect and append will
  389.      still be obeyed). 
  390.  
  391.      Rz also supports incoming pathnames, and will recursively
  392.      create all subdirectories as required. Rz preserve file mod
  393.      times, and file protection. The translation of Unix protection
  394.      bits to ST file attributes is based on the Unix owner (07XX)
  395.      protection bits.  Presently, only read and write bits are considered.
  396.      All received pathnames are considered to be rooted at the 
  397.      current working directory. Any leading '/' from unix systems
  398.      is discarded (ie. all incoming pathnames are considered unrooted,
  399.      and are locally 'planted' at the current working directory).
  400.      Ascii/Binary file modes are determined by examining the file
  401.      extension on the incoming path name. If the extension is one
  402.      of the following (case independent), then it is assumed to be
  403.      a binary file, ascii other wise. The ascii translation of 
  404.      '\n' to '\r\n' is done locally for ZMODEM (only).
  405.      For X or Y modem the sender determines the file type (see
  406.      the file 'common.c' for the latest list).
  407.  
  408.     ".PRG", ".TOS", ".TTP", ".ARC", ".ACC", ".IMG", ".RSC", ".O",
  409.         ".OBJ", ".NEO", ".PIC", ".PI1", ".PI2", ".PI3", ".PQ1", ".PQ2",
  410.         ".PQ3", ".BRD", ".ANI", ".STW", ".FNT", ".PRT", ".SNG", ".NEC",
  411.         ".CNF", ".Z"  , ".DFN", ".GEM", ".EZD", ".LNK", ".SYM",
  412.         ".PIX", ".X32", ".OUT", ".A",   ".CCC", ".CL",  ".CMD", ".COM",
  413.         ".CRL", ".DAT", ".DIR", ".EXE", ".OVL", ".PAG", ".REL", ".SAV",
  414.         ".SUB", ".SWP", ".SYS", ".TAR", ".UTL", ".IM",  ".PAK", ".ZOO"
  415.  
  416.  
  417.  
  418. RZ/SZ(1)              ST Programmer's Manual            RZ/SZ(1)
  419.  
  420. NAME
  421.      sz
  422.  
  423. SYNOPSIS
  424.      sz    [-+BdefkLlNnopqtuwvy][-P <directory of file>]*  file ...
  425.      sz    -X [-kqtuv] file
  426.      sz    [-oqtv] -c COMMAND
  427.      sz    [-oqtv] -i COMMAND
  428.  
  429. DESCRIPTION
  430.      Sz    uses the ZMODEM, YMODEM    or XMODEM error    correcting proto-
  431.      col to send one or    more files over    a serial port to a
  432.      variety of    programs running under PC-DOS, CP/M, Unix, VMS, TOS
  433.      and other operating systems.
  434.  
  435.  
  436.      The first form of sz sends    one or more files with ZMODEM or
  437.      YMODEM batch protocol.  Normally, only the    file name part of
  438.      the pathname is transmitted. Additional
  439.      information about the file    is transmitted.     If the    receiving
  440.      program uses this information, the    transmitted file length
  441.      controls the exact    number of bytes    written    to the output
  442.      dataset, and the modify time and file mode    are set    accord-
  443.      ingly.
  444.  
  445.      The second    form of    sz uses    the -X flag to send a single file
  446.      with XMODEM or XMODEM-1k protocol.     The user must supply the
  447.      file name to both sending and receiving programs.
  448.  
  449.  
  450.      The third form sends a single COMMAND to the receiver for
  451.      execution.     Sz exits with the COMMAND return value.
  452.  
  453.  
  454.      The fourth    form sends a single COMMAND to the receiver for
  455.      execution.     Sz exits as soon as the receiver has correctly
  456.      received the command, before it is    executed.
  457.  
  458.  
  459.      In SZ Verbose is set to 2, causing frame by frame pro-
  460.      gress reports to stderr.  This may    be disabled with the q
  461.      option.
  462.  
  463.      The meanings of the available options are:
  464.  
  465.      +      Instruct the receiver    to append transmitted data to an
  466.       existing file    (ZMODEM    only).
  467.  
  468.      B      (ZMODEM) force all files to be sent in binary mode.
  469.       Useful for ST-to-ST transfers (for Ascii files where
  470.       you don't want LF to CRLF conversion).
  471.       (Applicable to ZMODEM transfers only).
  472.  
  473.      c COMMAND
  474.       Send COMMAND to the receiver for execution, return with
  475.       COMMAND's exit status.
  476.  
  477.      d      Change all instances of "." to "/" in    the transmitted
  478.       pathname.  Thus, C.omenB0000 (which is unacceptable to
  479.       MSDOS    or CP/M) is transmitted    as C/omenB0000.     If the
  480.       resultant filename has more than 8 characters    in the
  481.       stem,    a "." is inserted to allow a total of eleven.
  482.  
  483.      e      Escape all control characters; normally XON, XOFF, CR-
  484.       @-CR,    and Ctrl-X are escaped.
  485.  
  486.      f      Send Full pathname.  Normally    directory prefixes are
  487.       stripped from    the transmitted    filename.
  488.  
  489.      i COMMAND
  490.       Send COMMAND to the receiver for execution, return
  491.       Immediately upon the receiving program's successful
  492.       reception of the command.
  493.  
  494.      k      (XMODEM/YMODEM) Send files using 1024    byte blocks
  495.       rather than the default 128 byte blocks.  1024 byte
  496.       packets speed    file transfers at high bit rates.  (ZMO-
  497.       DEM streams the data for the best possible throughput.)
  498.  
  499.      L N  Use ZMODEM sub-packets of length N.  A larger    N (32 <=
  500.       N <= 1024) gives slightly higher throughput, a smaller
  501.       N speeds error recovery.  The    default    is 128 below 300
  502.       baud,    256 above 300 baud, or 1024 above 2400 baud.
  503.  
  504.      l N  Wait for the receiver    to acknowledge correct data every
  505.       N (32    <= N <=    1024) characters.  This    may be used to
  506.       avoid    network    overrun    when XOFF flow control is lack-
  507.       ing.
  508.  
  509.      n      (ZMODEM) Send    each file if destination file does not
  510.       exist.  Overwrite destination    file if    source file is
  511.       newer    or longer than the destination file.
  512.  
  513.      N      (ZMODEM) Send    each file if destination file does not
  514.       exist.  Overwrite destination    file if    source file has
  515.       different length or date.
  516.  
  517.      o      (ZMODEM) Disable automatic selection of 32 bit CRC.
  518.  
  519.      p      (ZMODEM) Protect existing destination    files by skipping
  520.       transfer if the destination file exists.
  521.  
  522.      q      Quiet    suppresses verbosity.
  523.  
  524.      r      Resume interrupted file transfer.  If    the source file
  525.       is longer than the destination file, the transfer com-
  526.       mences at the    offset in the source file that equals the
  527.       length of the    destination file.
  528.  
  529.      t tim
  530.       Change timeout to tim    tenths of seconds.
  531.  
  532.      u      Unlink the file after    successful transmission.
  533.  
  534.      v      Verbose causes a list    of file    names to be appended to
  535.       szlog .    More v's generate more output.
  536.  
  537.      X      Send a single    file with XMODEM or XMODEM-1k protocol.
  538.  
  539.      y      Instruct a ZMODEM receiving program to overwrite any
  540.       existing file    with the same name.
  541.  
  542.      w      N restrict transmit window size to N.
  543.  
  544.      P <directory or file>
  545.     (ZMODEM) Sz may be given the name of
  546.     a directory, in which case it will send the contents
  547.     of the directory, and all the subdirectories thereof.
  548.     The -P 'Prune' option is used to prune out the named directory
  549.     or file while expanding the directory tree. Multiple
  550.     -P options may be specified. This option
  551.     is only present when the source is compiled with the
  552.     pre-processor symbol `RECURSE' defined.
  553.  
  554.     SZ guesses the file mode by examining the filename extension as
  555.     discusses under RZ above. SZ -f send full pathnames with '\'
  556.     converted to '/'. The ST drive specifier is never sent.
  557.  
  558. SEE ALSO
  559.      ZMODEM.DOC, YMODEM.DOC, IMP(CP/M),    cu(1), Professional-YAM
  560.      manual, sz(omen), usq(omen), undos(omen)
  561.  
  562.      Compile time options required for various operating systems
  563.      are described in the source file.
  564.  
  565. NOTES
  566.     Depending on your file structure, when using the recursively
  567.     descend a directory option of Sz, ZMDM can demand a lot of
  568.     dynamic memory. When the pre-processor symbol `RECURSE' is
  569.     defined, for Mark Williams C, `_stksize' is set to 16K. If
  570.     you are using Alcyon C, please use a decent version of
  571.     GEMSTART.S. We use the version from pratt@atari with
  572.     memory model (STACK=1), which gives quarter of available
  573.     memory to stack+heap. Note that all the dynamic memory is
  574.     taken off the program heap (for Alcyon, and off the Arena
  575.     above the stack for Mark Wiliams), ie. ZMDM uses `malloc' not
  576.     `Malloc'.
  577.  
  578.     It is possible to run out of dynamic memory when descending
  579.     a file structure with a lot of files and/or deep-hierarchies.
  580.     The simplest way to work around this problem is to do the
  581.     sending in parts by using the -P rune option of Sz. For
  582.     instance if you run out of memory while trying to send your
  583.     C partition, you may want to prune out some directories and
  584.     send things in parts. In my case i backup my C partition to
  585.     our unix host in the following manner:
  586.  
  587.     sz -f -P c:\bin -P c:\lib c:\  /* send eveything in the C
  588.                         partition except the 'bin'
  589.                         and 'lib' subdirectories */
  590.  
  591.     sz -f c:\bin c:\lib          /* then send the 'bin' and 'lib'
  592.                         directories */
  593.  
  594.     The second solution depends on if you are using Mark Williams
  595.     or Alcyon C libraries. If you are running out of memory because
  596.     of deep hierarchies, you need to increase the stack. If you are
  597.     running out of memory because of a lot of files, then you
  598.     need to decrease the stack to allow for a larger arena in
  599.     the case of MWC (and trade-off for depth), or in the case of
  600.     Alcyon you need to increase stack+heap. On systems with a
  601.     large Ramdisk or many ACCs make sure you have enough space
  602.      before doing this.
  603.  
  604.     The TTY input buffering on    some systems may not allow long
  605.     blocks or streaming input,    especially at high baud    rates.
  606.     The Pro-YAM zmodem    l numeric parameter may    be set to a value
  607.     between 64    and 1024 to limit the burst length.
  608.  
  609. BUGS
  610.      THIS SOFTWARE IS STILL UNDER DEVELOPMENT AND ALMOST POSITIVELY
  611.      CONTAINS BUGS. PLEASE REPORT ALL SUCH CRITTERS TO dsrgsun!bammi.
  612.  
  613.      Pathnames are restricted to 127 characters.  In XMODEM sin-
  614.      gle file mode, the    pathname given on the command line is
  615.      still processed as    described above.
  616.  
  617. FILES
  618.  
  619.      (rz|sz)log    stores debugging output    generated with -vvv[v]*
  620.             option.
  621.  
  622. OTHER COMMANDS
  623.     The following command are available in the
  624.     transfer shell:
  625.  
  626.     <regular-expression> ::= <file name> | <wild card> |
  627.                  'quoted string'
  628.     NB: A quoted string cannot contain embedded single quotes. There
  629.         are no escape character available in a quoted string.
  630.  
  631.     rm,   remove files
  632.         rm [-i] <regular expression>
  633.         -i ::= interactive mode, you are prompted before
  634.                file(s) are removed.
  635.  
  636.     cp,   copy files
  637.         cp <many files> directory
  638.             copy all files into directory
  639.             cp *.c d:\foo - copy all C files into foo 
  640.                         directory on drive D:
  641.         cp <file> <directory>
  642.             copy file to directory\file.
  643.  
  644.         cp <file> <file>
  645.             file to file copy
  646.             'cp file con:' to get the listing of a file.
  647.  
  648.     ls,   list directory
  649.         ls [wild card]
  650.         ls without an argument will list all files in the
  651.         current directory. If an argument is given, then
  652.         only files matching the wild card will be listed.
  653.             ls *.c - list all C files in current directory
  654.             ls d:\foo - list all files in foo directory on D:
  655.             ls d:\foo\*.c - list all C files in foo directory
  656.  
  657.     cd,   change working directory
  658.         cd directory
  659.  
  660.     md,   make a directory
  661.         md directory
  662.  
  663.     rd,   remove a directory
  664.         rd directory
  665.         Due to a Gemdos bug, you may have to say 'rd directory'
  666.         twice to get rid of directory. This happens when you
  667.         try to remove a directory that you have never visited.
  668.  
  669.     pwd,  print  working directory
  670.         prints the current working directory
  671.  
  672.     df,   check free space
  673.         df [device]
  674.         df without an argument will show free space on current drive.
  675.         df with an argument will show free space on specified drive.
  676.  
  677. TERMCAP
  678.     Termcap entries that may be used for the terminal emulator.
  679.  
  680. st|520st|atariST|520 or 1040, bw, std sys font, 25 lines, 80 col:\
  681.     :ae=\Eba:al=\EL:am:as=\Ebc:\
  682.     :bl=^G:bs:\
  683.     :cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :co#80:cr=^M:\
  684.     :dl=99\EM:do=\EB:\
  685.     :ho=\EH:\
  686.     :is=\Ev\Ee:\
  687.     :kd=\274:kh=\216:kl=\275:kr=\276:ku=\273:\
  688.     :le=^H:li#25:\
  689.     :nd=\EC:nl=^J:\
  690.     :pt:\
  691.     :se=\Eq:so=\Ep:sr=\EI:\
  692.     :ta=^I:\
  693.     :up=\EA:
  694.  
  695.  
  696. ST|ST25|atariSTcolor|as above but with color for standout :\
  697.     :ae=\Eba:al=\EL:am:as=\Ebc:\
  698.     :bl=^G:bs:\
  699.     :cm=\EY%+ %+ :co#80:li#25:cr=^M:cd=\EJ:ce=\EK:cl=\EH\EJ:\
  700.     :dl=99\EM:do=^J:\
  701.     :ho=\EH:\
  702.     :is=\Ev\Ee:\
  703.     :kd=\274:kh=\216:kl=\275:kr=\276:ku=\273:\
  704.     :le=^H:\
  705.     :nd=\EC:nl=^J:\
  706.     :pt:\
  707.     :so=\Ec2\Eb3:se=\Ec0\Eb3:sr:\EI:\
  708.     :ta=^I:\
  709.     :up=\EA:
  710.  
  711. sT|st50|AtariST emulating vt52, bw, 50 lines, 80 col:\
  712.     :ae=\Eba:al=\EL:am:as=\Ebc:\
  713.     :bl=^G:bs:\
  714.     :cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :co#80:cr=^M:\
  715.     :dl=99\EM:do=^J:\
  716.     :ho=\EH:\
  717.     :is=\Ev\Ee:\
  718.     :kd=\274:kh=\216:kl=\275:kr=\276:ku=\273:\
  719.     :le=^H:li#50:\
  720.     :nd=\EC:nl=^J:\
  721.     :pt:\
  722.     :se=\Eq:so=\Ep:sr=\EI:\
  723.     :ta=^I:\
  724.     :up=\EA:
  725.  
  726. COMPILING
  727.  
  728.     The source provided with this distribution will compile
  729.     with either ALCYON C V4.14 as distributed with the 
  730.     Atari Development System,  with Mark Williams C Version 2.00
  731.     or later, with MANX Aztec C (V3.6a tested) or with Gnu C (v1.35
  732.     or later).
  733.     (please note that the system will NOT compile with earlier
  734.      versions of either compiler.)
  735.  
  736.     Edit config.h.
  737.  
  738.     If you are using Alcyon(and ALN for the linker), check paths in LNK
  739.  
  740.     Define the preprocessor symbol `RECURSE' if you
  741.     want the sz to accept directory names(and send its
  742.     contents), and for the -P option.
  743.  
  744.     To compile with Gnu C see `makefile.gcc' and `makefilg.sta'
  745.     To compile with Alcyon see the file `makefile.alc'
  746.     To compile with Mark Williams C see the file `makefile'
  747.     To compile with Manx Aztec C see the file `makefile.man'
  748.  
  749.     Rename ZMDM.PRG to ZMDM.TOS if you so desire.
  750.  
  751. MORE ALCYON NOTES:
  752.     -- Some people seem to have a bad version of as68 with Alcyon,
  753.      that does'nt handle static variables too well (ie. symbols of the
  754.      form "`name" in the assembler). Please make sure yours is not one of
  755.      these.
  756.  
  757.     -- Use a reasonable version of gemstart.s - ie. one which gives you
  758.      a decent amount of stack+heap space. One of the nicer versions
  759.      floating around is the one written by Alan Pratt @atari, that
  760.      gives you the various memory model options, and corrects the
  761.      bug with the bdos call as suggested by Robert Royar on this net.
  762.  
  763.     -- Do NOT use the `fix' distributed on CompuServe developers forum
  764.     in the file WILDFI.ARC (in Dl7). This fix does'nt fix anything,
  765.     it breaks everything!
  766.  
  767. KNOWN BUGS
  768.     -v's on the ST end don't do a thing!
  769.  
  770.     If a receive is cancelled/aborted, the receive file
  771.     buffer is not flushed to the file. Personally, i
  772.     view this as a feature rather than a bug, so it is
  773.     unlikely to be `fixed'.
  774.  
  775. DISCLAIMER
  776.     This code is in public domain, and you are encouraged
  777.     to distribute it further. You may however not sell the
  778.     code, or use it for any commercial gains. The code is
  779.     provided as is, and we are not responsible for any
  780.     omissions/errors, bugs, nor do we claim correctness or
  781.     its fitness for any purpose.
  782.  
  783.     Please forward your comments and suggestions to
  784.  
  785.                 Jwahar Bammi
  786. bang:   {any internet host}!dsrgsun.ces.CWRU.edu!bammi    jwahar r. bammi
  787. domain: bammi@dsrgsun.ces.CWRU.edu
  788. GEnie:    J.Bammi
  789. Compu$erve: 71515,155 or >INTERNET bammi@dsrgsun.ces.cwru.edu
  790.  
  791. /* EOF */
  792.